package me.zhengjie.modules.repository.enterprise;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.modules.domain.enterprise.EnterpriseInformation;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface EnterpriseInfMapper extends BaseMapper<EnterpriseInformation> {

    /**
     * 根据条件分页查询企业基本信息
     * @param map
     * @return
     */
    List<EnterpriseInformation> selectAllByPageForConditions(Map<String,Object> map);

    /**
     * 添加企业基本信息  返回添加成功后的主键id
     * @param enterpriseInformation
     * @return
     */
    int insertEnterpriseInfReturnId(EnterpriseInformation enterpriseInformation);

    /**
     * 查询新一轮到周期了的企业
     * @return
     */
    List<EnterpriseInformation> selectNewRound();

    /**
     * 查询最新的企业基本数据
     * @return
     */
    List<EnterpriseInformation> selectNewEnterpriseInf();

    /**
     * 查询所有企业数据
     * @return
     */
    List<EnterpriseInformation> selectAll();

    /**
     * 分页查询企业基本信息
     * @param map
     * @return
     */
    List<EnterpriseInformation> selectEnterpriseInfByPage(Map<String, Object> map);

    /**
     * 统计企业基本信息条数
     * @return
     */
    int selectEnterpriseInfByCount();

    /**
     * 根据企业名称查询
     * @param name
     * @return
     */
    EnterpriseInformation selectEnterpriseByName(String name);

    /**
     * 根据企业id查询
     * @param id
     * @return
     */
    EnterpriseInformation selectEnterpriseById(Integer id);

    /**
     *  根据条件分页查询企业信息
     * @param map
     * @return
     */
    List<EnterpriseInformation> selectEnterpriseInfoForPageByConditions(Map<String, Object> map);
    int selectEnterpriseInfoForPageByConditionsToTotal(Map<String, Object> map);

    /**
     * 查询所有企业的地区（不重复）
     * @return
     */
    List<String> selectEnterpriseInfForDistrict();

    /**
     * 查询企业行业top10
     * @return
     */
    List<Map<String,Object>> selectEnterpriseInfIndustryTopTen();

    /**
     * 查询企业同行信息
     * @param industryAll
     * @return
     */
    List<EnterpriseInformation> selectEnterpriseInfByIndId(Long industryAll);
}
